1. Field of the Invention
The invention relates to interpreted programming languages. Particularly, the invention relates to a method for the secure interpretation of programs in electronic devices.
2. Description of the Related Art
Security is an important factor in electronic communication devices. Nowadays mobile terminals have evolved from simple cellular telephones into multi-purpose communicator devices with applications similar to personal computers. The communicator devices come with a wide variety of services such as Internet browsing, E-mail and multimedia calls. One important technology, which is making its way to mobile terminals are various interpreted languages such as Java, Perl, PHP and Python. These interpreted language further increase the plethora of value-added services and games available in mobile terminals. The software developed using these interpreted languages comprises separate programs and shared libraries. These programs and libraries may be downloaded over the air from a network server to a mobile terminal. The downloading of software mostly occurs by means of a browser provided in the mobile terminal. It is important for the user to be able to trust the applications he or she downloads from the network. It is very easy to sneak malicious code into the mobile terminal, unless proper security procedures are applied in the mobile terminal. In a mobile terminal malicious code may cause a variety of nuisances. For example, calls may be set-up to chargeable service numbers without properly informing the user, information may be gathered and stolen from the mobile terminal, and chargeable purchases may be made on behalf of the user, if the mobile terminal supports some kind of mobile payment system.
History shows several examples of malicious programs that have been written using interpreted languages running within an interpreter on another platform. These malicious programs have either targeted the interpreted environment, the host environment or both. The malicious programs operation was feasible because the interpreter's runtime environment did not provide sufficient isolation from other interpreted programs or the host platform.
Application isolation in the context of this patent application is defined as the separation of the persistent state and runtime behavior of the programs. Programs may voluntarily share their data or react to the behavior of other programs.
Modern features familiar to an expert in the field include data caging, runtime isolation of processes, capability framework, process identifiers, Inter-Process Communication (IPC) authentication,
trusted computing base, perimeter defense and software installation programs of operating systems.
These features together isolate programs from each other, from the trusted computing base and from sensitive system interfaces. A noteworthy feature in contemporary operating systems is that the policy is enforced at the process boundary and as such the system is based on the isolation of processes and hence programs. The trusted computing base also denies programs the ability to increase their privileges.
A secure kernel isolates native programs from each other. This implies that it is not possible to grant capabilities or access to resources to programs that are not isolated from each other. If it would be possible to grant capabilities to applications that were not isolated from each other then there would be no guarantees that the capabilities do not “leak” to malicious code. Essentially, the isolation of applications is a critical underpinning of the capability framework.
The security features mentioned above are instrumental in preventing the damage a malicious or defective program may do to the platform, to data or to other programs on the system. These features have been designed so that application isolation is provided for native programs. The system specifications do not at the moment suggest how application isolation would be provided for interpreted programs. This invention proposes a method by which this is achieved.